
using Infrastructure.Extensions;
using ZR.Model.Enums;

namespace ZR.Model.BaseFrame.Entity
{
    /// <summary>
    /// 模块
    /// </summary>
    public class ModuleEntityBase
    {
        /// <summary>
        /// 模块标识
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
        public long ModuleId { get; set; }

        /// <summary>
        /// 上级模块
        /// </summary>
        public long PaModuleId { get; set; }

        /// <summary>
        /// 模块名称
        /// </summary>
        public string ModuleName { get; set; }= string.Empty;

        /// <summary>
        /// 模块代码
        /// </summary>
        public string ModuleCode { get; set; }= string.Empty;

        /// <summary>
        /// 菜单类型
        /// </summary>
        public string MenuTypeCode { get; set; }

        /// <summary>
        /// 页面路径
        /// </summary>
        public string PagePath { get; set; }

        /// <summary>
        /// 链接路径
        /// </summary>
        public string LinkPath { get; set; }

        /// <summary>
        /// 排序编号
        /// </summary>
        public decimal SortNo { get; set; }

        /// <summary>
        /// 是否显示
        /// </summary>
        public bool IsVisible { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        public string StateCode { get; set; } = DataStateEnum.Enabled.ToEnumCode();

        /// <summary>
        /// 图标
        /// </summary>
        public string Icon { get; set; }= string.Empty;

        /// <summary>
        /// 描述
        /// </summary>
        public string Desc { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string Creater { get; set; }= string.Empty;

        /// <summary>
        /// 创建人标识
        /// </summary>
        public long CreaterId { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? ModifyTime { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        public string Modifier { get; set; }

        /// <summary>
        /// 修改人标识
        /// </summary>
        public long? ModifierId { get; set; }

        /// <summary>
        /// 模块Id路径
        /// </summary>
        public string ModuleIdPath { get; set; }

    }
}